Flash memory is non-volatile computer memory that can be electrically erased and reprogrammed. The technology is primarily used in memory cards and Universal Serial Bus “USB” flash drives for general storage and transfer of data between computers and other digital products. Flash memory is a specific type of Electrically Erasable Programmable Read-Only Memory “EEPROM” that is erased and programmed in large blocks. Flash memory costs significantly less than byte-programmable EEPROMs and has, therefore, become the dominant technology wherever a significant amount of non-volatile, solid-state storage is needed. Examples of applications include Personal Digital Assistants “PDAs” laptop computers, digital audio/video players, digital cameras, game consoles, and mobile phones.
Flash memory is non-volatile, meaning that it does not need power to maintain the information stored in the chip. In addition, flash memory offers relatively fast read access times (although not as fast as volatile DRAM memory used for main memory in PCs) and better kinetic shock resistance than hard disks. These characteristics lead to the popularity of flash memory in portable devices. Another feature of flash memory is that when packaged in a memory card, it is very durable, being able to withstand intense pressure, extremes of temperature, and even immersion in water.
Currently available flash drivers typically require scanning every sector on the flash memory during boot-up to determine the state of the flash memory and to recover any interrupted operations due to a power failure. The flash state includes data structures such as the logical to physical sector mapping table, the free list, and the dirty list. However, as flash parts get larger, this process may take very long and, therefore, impact boot-up time.